В C++ оператор области видимости (::) действует как точный навигатор, указывая компилятору, в какой именно области видимости искать. Однако набирать std:: повторно — это как каждый раз писать своё полное юридическое имя. Мы используем директивы using чтобы создавать локальные синонимы.
1. Директива using
Директива using позволяет нам получить доступ к имени из другой области видимости без префикса. Она имеет следующий формат: using имя_области_видимости::имя;. Каждая директива должна завершаться точкой с запятой. После объявления имя становится доступным с момента объявления до конца локальной области видимости (например, блока функции) или глобальной области видимости (уровень файла).
2. Чистота заголовков и защита
Для поддержки отдельной компиляции, мы используем защиту заголовков. Эти меры предотвращают повторное включение одного и того же файла препроцессором, что привело бы к ошибкам переопределения. Используя #ifndef (если не определено), #define, и #endif гарантирует, что заголовок будет обработан только один раз.
#includeподключают, директива using в заголовке заставляет это имя попасть в область видимости каждого файла, который его включает, что может вызвать скрытые конфликты имён.